{T}

Jenkins 直接安装实战

概述

本文详解在 Ubuntu/Debian 系统上通过 apt-get 安装 Jenkins 的完整流程,包括环境准备、服务管理、端口冲突排查与修改、初始化配置及常见问题处理。

学习目标

  1. 掌握 Ubuntu/Debian 上 apt-get 安装 Jenkins 的完整步骤
  2. 熟练使用 systemctl 管理 Jenkins 服务
  3. 掌握端口冲突排查与修改方法

一、安装前准备

环境要求

软件要求检查命令
JDKJava 11 或 Java 17java -version
内存512MB+free -h
磁盘10GB+df -h

版本选择

版本类型说明推荐
LTS(长期支持版)稳定,每 12 周发布生产环境推荐
Weekly(每周版)最新功能,每周发布测试环境可选

二、完整安装步骤

bash
# 1. 添加 Jenkins 仓库密钥
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee \
  /usr/share/keyrings/jenkins-keyring.asc > /dev/null

# 2. 添加 Jenkins 仓库
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
  https://pkg.jenkins.io/debian-stable binary/ | sudo tee \
  /etc/apt/sources.list.d/jenkins.list > /dev/null

# 3. 更新软件包列表
sudo apt-get update

# 4. 安装 JDK 11
sudo apt-get install openjdk-11-jdk -y

# 5. 安装 Jenkins
sudo apt-get install jenkins -y

安装后自动创建系统服务并启动:

bash
sudo systemctl status jenkins

重要目录

目录说明
/var/lib/jenkinsJenkins 主目录
/var/log/jenkins日志目录
/etc/default/jenkins配置文件

三、服务管理命令

操作命令
启动sudo systemctl start jenkins
停止sudo systemctl stop jenkins
重启sudo systemctl restart jenkins
查看状态sudo systemctl status jenkins
开机自启sudo systemctl enable jenkins
取消自启sudo systemctl disable jenkins
查看日志sudo journalctl -u jenkins -f

四、端口冲突排查

错误现象

code
java.io.IOException: Failed to bind to 0.0.0.0/0.0.0.0:8080
Caused by: java.net.BindException: Address already in use

排查方法

bash
# 方法一:netstat
sudo netstat -tulpn | grep 8080

# 方法二:lsof
sudo lsof -i :8080

# 方法三:ss
sudo ss -tulpn | grep 8080

解决方案

方案操作适用场景
停止占用服务sudo systemctl stop <service>占用服务不重要
修改 Jenkins 端口见下节需保留占用服务

五、修改 Jenkins 端口

推荐方法:systemctl edit

bash
# 1. 创建覆盖配置
sudo systemctl edit jenkins

在编辑器中添加:

ini
[Service]
Environment="JENKINS_PORT=8081"
bash
# 2. 重载配置
sudo systemctl daemon-reload

# 3. 重启 Jenkins
sudo systemctl restart jenkins

# 4. 验证端口
sudo netstat -tulpn | grep 8081

方法对比

方法配置文件可靠性
修改 /etc/default/jenkins直接修改部分系统不生效
systemctl edit(推荐)override.conf可靠

六、初始化配置

获取初始密码

bash
sudo cat /var/lib/jenkins/secrets/initialAdminPassword

初始化流程

图表渲染中…

七、安全配置建议

bash
# 防火墙开放端口
sudo ufw allow 8081/tcp

# 定期备份
sudo tar -czf jenkins-backup-$(date +%Y%m%d).tar.gz /var/lib/jenkins

生产环境建议:

  • 修改默认端口 8080,避免被扫描攻击
  • 配置 HTTPS 反向代理
  • 定期备份主目录

常见问题

问题原因解决方案
端口被占用8080 被其他服务占用修改 Jenkins 端口
JDK 未安装缺少 Java 环境安装 JDK 11/17
权限不足目录权限问题检查 /var/lib/jenkins 权限
防火墙阻止端口未开放sudo ufw allow 8081
密码文件不存在首次启动未完成重启 Jenkins

延伸阅读